#pragma once

#pragma unmanaged

#include <BWSAL\BFSBuildingPlacer.h>

#pragma managed

#include "Interfaces\IBuildingPlacer.h"

namespace BroodWar
{
	namespace Addon
	{
		public ref class BFSBuildingPlacer : public IBuildingPlacer
		{
		internal:
			bool dispose;
			BWSAL::BFSBuildingPlacer* instance;

			BFSBuildingPlacer(BWSAL::BFSBuildingPlacer* placer);
			~BFSBuildingPlacer();
			!BFSBuildingPlacer();
		public:
			BFSBuildingPlacer();
			virtual TilePosition^ FindBuildLocation(IReservedMap^ reserveMap, Api::Enum::UnitType unitType, TilePosition^ seedLocation, Unit^ builder);
			virtual TilePosition^ FindBuildLocation(IReservedMap^ reserveMap, Api::Enum::UnitType unitType, TilePosition^ seedLocation);
		};
	}
}
